package com.epoque.admin.server.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.epoque.admin.server.constant.CommonConstant;
import com.epoque.admin.server.mapper.MenuMapper;
import com.epoque.admin.server.model.Menu;
import com.epoque.common.biz.BaseBiz;

/**
 * 
 * @ClassName: MenuService
 * @Description: 菜单操作类
 * @author qiuxianfeng
 * @date 2018年8月29日
 *
 */
@Service
public class MenuService extends BaseBiz<MenuMapper,Menu> {
	
    @Override
    public void insertSelective(Menu entity) {
        if(CommonConstant.ROOT == entity.getParentId()){
            entity.setPath("/"+entity.getCode());
        }else{
            Menu parent = this.selectById(entity.getParentId());
            entity.setPath(parent.getPath()+"/"+entity.getCode());
        }
        super.insertSelective(entity);
    }

    @Override
    public void updateById(Menu entity) {
        if(CommonConstant.ROOT == entity.getParentId()){
            entity.setPath("/"+entity.getCode());
        }else{
            Menu parent = this.selectById(entity.getParentId());
            entity.setPath(parent.getPath()+"/"+entity.getCode());
        }
        super.updateById(entity);
    }
    
    /**
     * 
     * @Title: getUserAuthorityMenuByUserId
     * @author qiuxianfeng
     * @Description: 获取用户可以访问的菜单
     * @param @param id
     * @param @return    参数
     * @return List<Menu>    返回类型
     * @throws
     */
    public List<Menu> getUserAuthorityMenuByUserId(int id){
        return mapper.selectAuthorityMenuByUserId(id);
    }

    /**
     * 
     * @Title: getUserAuthoritySystemByUserId
     * @author qiuxianfeng
     * @Description: 根据用户获取可以访问的系统
     * @param @param id
     * @param @return    参数
     * @return List<Menu>    返回类型
     * @throws
     */
    public List<Menu> getUserAuthoritySystemByUserId(int id){
        return mapper.selectAuthoritySystemByUserId(id);
    }
}
